home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_box.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  2KB  |  79 lines

  1. #ifndef __EWL_BOX_H__
  2. #define __EWL_BOX_H__
  3.  
  4. /**
  5.  * @file ewl_box.h
  6.  * @defgroup Ewl_Box Box: The Box Layout Container.
  7.  * @brief Defines the Ewl_Box class used for laying out Ewl_Widget's in a
  8.  * horizontal or vertical line.
  9.  *
  10.  * @{
  11.  */
  12.  
  13. /**
  14.  * @themekey /box/file
  15.  * @themekey /box/group
  16.  */
  17.  
  18. /**
  19.  * The box widget is an Ewl_Container and lays out Ewl_Widget's either
  20.  * horizontally or vertically.
  21.  */
  22. typedef struct Ewl_Box Ewl_Box;
  23.  
  24. /**
  25.  * @def EWL_BOX(box)
  26.  * Typecast a pointer to an Ewl_Box pointer.
  27.  */
  28. #define EWL_BOX(box) ((Ewl_Box *) box)
  29.  
  30. /**
  31.  * @struct Ewl_Box
  32.  * Inherits from an Ewl_Container to provide layout facilities for child
  33.  * widgets placed inside. Layout is done horizontally (left-to-right), or
  34.  * vertically (top-to-bottom). There is also a flag for homogeneous layout,
  35.  * which gives each child Ewl_Widget equal space inside the Ewl_Box.
  36.  */
  37. struct Ewl_Box
  38. {
  39.     Ewl_Container   container; /**< Inherit from Ewl_Container */
  40.  
  41.     Ewl_Orientation orientation; /**< Indicate the orientation of layout */
  42.     int             spacing; /**< Space between each widget in the box */
  43.  
  44.     unsigned int    homogeneous; /**< Flag indicating space assignemnt */
  45.     /* int shows; */
  46. };
  47.  
  48. Ewl_Widget     *ewl_box_new(void);
  49. Ewl_Widget     *ewl_hbox_new(void);
  50. Ewl_Widget     *ewl_vbox_new(void);
  51. int             ewl_box_init(Ewl_Box * box);
  52. void            ewl_box_orientation_set(Ewl_Box * b, Ewl_Orientation o);
  53. Ewl_Orientation ewl_box_orientation_get(Ewl_Box * b);
  54. void            ewl_box_spacing_set(Ewl_Box * b, int spacing);
  55. void            ewl_box_homogeneous_set(Ewl_Box *b, unsigned int h);
  56.  
  57. /*
  58.  * Internally used callbacks, override at your own risk.
  59.  */
  60. void            ewl_box_child_add_cb(Ewl_Container * c, Ewl_Widget * w);
  61. void            ewl_box_child_remove_cb(Ewl_Container * c, Ewl_Widget * w);
  62. void            ewl_box_child_resize_cb(Ewl_Container * c, Ewl_Widget * w,
  63.                         int size, Ewl_Orientation o);
  64. void            ewl_box_child_show_cb(Ewl_Container * c, Ewl_Widget * w);
  65. void            ewl_box_child_hide_cb(Ewl_Container * c, Ewl_Widget * w);
  66. void            ewl_box_child_homogeneous_show_cb(Ewl_Container * c,
  67.                           Ewl_Widget * w);
  68.  
  69. void            ewl_box_configure_cb(Ewl_Widget * w, void *ev_data,
  70.                              void *user_data);
  71. void            ewl_box_configure_homogeneous_cb(Ewl_Widget *w, void *ev_data,
  72.                          void *user_data);
  73.  
  74. /**
  75.  * @}
  76.  */
  77.  
  78. #endif                /* __EWL_BOX_H__ */
  79.